WARP: Word-level Adversarial ReProgramming
Author
- 저자:
- Karen Hambardzumyan1, Hrant Khachatrian1,2, Jonathan May3 (1YerevaNN, 2Yerevan State University,
3Information Sciences Institute, University of Southern California), 2021
- Karen Hambardzumyan1, Hrant Khachatrian1,2, Jonathan May3 (1YerevaNN, 2Yerevan State University,
느낀점
- PET + p-tuning
Abstract
- 대부분의 transfer learning은 params sharing을 최대화해서, 하나 혹은 여러 task-specific layers를 LM 위에 쌓아서 학습하는 형태임
- 본 논문에서는 다른 형태로 automatic propmpt generation이라는 선행연구 기반의 adversarial reprogramming 방법을 사용함
- Adversarial reprogramming에서는 task-specific word embeddings 을 학습하는데, 이는 특정 input text가 합쳐져서 입력으로 들어올때 LM이 specified task를 해결하게 하는 것임 (이래서 propmpt연구의 확장이라 했나..)
- 25K trainable params로 25M trainable params 모델까지 outperform했음 (GLUE benchmark 기준)
- task-specific human-readable prompts로 few-shot setting(32 training samples)에서 2개의 SuperGLUE task에서 GPT-3보다 좋은 성능을 냄
Introduction
- 요즘 pretrained model을 쓰는 대안은 adapters라고도 불리는데, 모든 레이어에 new weights를 더하는 방식으로 진행됨(ptrLM params은 frozen)
- 이러한 방법은 smaller set of task-specific params로 fine-tuning과 비슷한 성능을 냄
- 또 다른 연구는 “task descriptions”를 제공하는 방법론임 (labeled examples 없이)
- GPT-3의 경우가 이에 해당
- 이러한 방법론은 대신 huge LM (1.5B~175B) 가 필요함
- reformulation-based approach (prompt)에서 성능을 좋게 만드는 extra tokens을 찾을 수 있으면 손으로 직접 디자인한 것보다 좋은 성능 낼 수 있을 것
- optimal prompts르 찾는 테크닉 제안(WARP: Word-level Adversarial ReProgramming)
- 이 방법론은 이미지쪽 adaversarial program을 보고 아이디어를 얻음 (이름부터가 이미..)
- 여러 결과에서 좋은 성적 얻음
- GLUE leaderboard에서 81.6 test score를 얻었음(25K trainable params)
- 32 examples few-shot -> SuperGLUDE에서 GPT-3를 이기기도함(2개 태스크)
Related Work
- Towards Fewer Trainable Parameters
- 레이어마다 파라미터 추가하거나.. knowledge distillation하거나 등등
- Task Reformulation
- GPT 계열처럼 prompt 넣기
- MLM 처럼 빈칸채우기 (PET)
- Adversarial Reprogramming
- input값을 바꿔줘서 (perturbations) 학습시키는 것
- text classification 쪽에도 연구가 있긴 했었음
- AutoPrompt와 다르게, 본 연구에서는 word embedding space에 대해 gradient-based optimization을 수행함
WARP
- Goal: MLM이 원하는 verbalizer token을 answer로 뱉어낼 수 있는 최고의 prompt (continuous embeddng)를 찾는 것
- 다른말로하면, prompt에 대한 파라미터와 verbalizer embeddings 에대한 parameter를 찾고 있음
- 확률은 다음과 같이 나타냄
- T는 프롬프트 임베딩이 들어가는 템플릿을 뜻함
- C는 클래스 집합
- f(x)는 MLM output이고
- theta P, theta V는 워드 임베딩임과 같은 임베딩 스페이스에 있는 벡터임
- P쪽이 prompt, V쪽이 class 라고 보면 될듯
Method
- prompt tokens
[P_1], [P_2], ..., [P_K]
와 Maksed Token [MASK]를 input sequence에 추가함 - prompt template에 따라 프롬프트 토큰은 문장 앞뒤중간에 존재함 (이게 좀 애매하다…..영~)
- Xentory로 MLM의 output head와 verbalizer tokens
[V_1], [V_2], ..., [V_C]
간의 loss를 optimization함 (약간 PET + p tuning인데..) - 나머지 LM params은 건드리지 않음
- adversarial attack과는 다르게 original input tokens을 바꾸거나 하진 않음
Implementation Details
- GLUE task
- roberta-large
- pytorch
- few-shot task
- albert-xxlarge-v2 (iPET과 비교 위해)
- Optim
- Adam
- slanted triangular scheduler (6% warm-up steps & 10-20 epochs on each task)
- batch
- 1024 tokens & 8 examples
- speed up
- ptrLM의 dropout 제거
- 2.5-3배정도 fine-tuning보다 빠르고, frozen features 보다는 2배정도 느림
Experiments on GLUE
Few-Shot Experiments
Discussion
- prompts보단 verbalizers에서 좀 더 해석가능한 결과가 나왔음
- 해당 임베딩과 cosine sim으로 가장 가까운 토큰이 무엇인지 보여줌 (토큰벡터는 레이어중 어디꺼를 빼다 쓴건지.., 그냥 워드임베딩 레이어인가)
Conclusion
- optimized embedding을 input text에 추가하는 방법론으로 transfer learning의 다른 대안을 제안해봄
- GLUE나 SuperGLUE에서 좋은 성능을 보여줌
WARP: Word-level Adversarial ReProgramming
https://eagle705.github.io/WARP-Word-level Adversarial ReProgramming/